home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Moscow ML 1.31 / source code / mosml / src / compiler / Prim_opc.sml < prev    next >
Encoding:
Text File  |  1996-07-03  |  1.6 KB  |  64 lines  |  [TEXT/R*ch]

  1. (* Opcodes for the simple primitives. *)
  2.  
  3. local open Fnlib Prim Opcodes in
  4.  
  5. val opcode_for_primitive = fn
  6.     Pupdate => UPDATE
  7.   | Praise => RAISE
  8.   | Pnot => BOOLNOT
  9.   | Ptag_of => TAGOF
  10.   | Pnegint => NEGINT
  11.   | Psuccint => SUCCINT
  12.   | Ppredint => PREDINT
  13.   | Paddint => ADDINT
  14.   | Psubint => SUBINT
  15.   | Pmulint => MULINT
  16.   | Pdivint => DIVINT
  17.   | Pmodint => MODINT
  18.   | Pandint => ANDINT
  19.   | Porint => ORINT
  20.   | Pxorint => XORINT
  21.   | Pshiftleftint => SHIFTLEFTINT
  22.   | Pshiftrightintsigned => SHIFTRIGHTINTSIGNED
  23.   | Pshiftrightintunsigned => SHIFTRIGHTINTUNSIGNED
  24.   | Pincr => INCR
  25.   | Pdecr => DECR
  26.   | Pintoffloat => INTOFFLOAT
  27.   | Pstringlength => STRINGLENGTH
  28.   | Pgetstringchar => GETSTRINGCHAR
  29.   | Psetstringchar => SETSTRINGCHAR
  30.   | Pmakevector => MAKEVECTOR
  31.   | Pvectlength => VECTLENGTH
  32.   | Pgetvectitem => GETVECTITEM
  33.   | Psetvectitem => SETVECTITEM
  34.   | Psmlnegint => SMLNEGINT
  35.   | Psmlsuccint => SMLSUCCINT
  36.   | Psmlpredint => SMLPREDINT
  37.   | Psmladdint => SMLADDINT
  38.   | Psmlsubint => SMLSUBINT
  39.   | Psmlmulint => SMLMULINT
  40.   | Psmldivint => SMLDIVINT
  41.   | Psmlmodint => SMLMODINT
  42.   | Pmakerefvector => MAKEREFVECTOR
  43.   | Pbreak      => BREAK
  44.   | Psmlquotint => SMLQUOTINT
  45.   | Psmlremint   => SMLREMINT
  46.   | _ => fatalError "opcode_for_primitive"
  47. ;
  48.  
  49. val opcode_for_float_primitive = fn
  50.     Pfloatofint => FLOATOFINT
  51.   | Pnegfloat => NEGFLOAT
  52.   | Paddfloat => ADDFLOAT
  53.   | Psubfloat => SUBFLOAT
  54.   | Pmulfloat => MULFLOAT
  55.   | Pdivfloat => DIVFLOAT
  56.   | Psmlnegfloat => SMLNEGFLOAT
  57.   | Psmladdfloat => SMLADDFLOAT
  58.   | Psmlsubfloat => SMLSUBFLOAT
  59.   | Psmlmulfloat => SMLMULFLOAT
  60.   | Psmldivfloat => SMLDIVFLOAT
  61. ;
  62.  
  63. end;
  64.